Work With Plus では、「インスタンスの更新」機能によって、すでに作成された インスタンステンプレートからパターンインスタンスを更新する機能が提供されます。
インスタンスの更新機能には、次の 2 つの主な目標があります:
- すでに作成され、カスタマイズされたすべてのインスタンスのテンプレート (インスタンステンプレートまたは Web パネルテンプレート) に対して行われた変更の配布。この変更には、新しいノードの追加、特定ノードの一部のプロパティの変更、ノードの並べ替えなどが含まれます。
- 一部のトランザクションの構造に対して行われた変更の配布。この変更には、項目属性およびトランザクション間の関係の追加または削除、項目属性のデスクリプションまたはトランザクション間の関係の変更が含まれます。
インスタンスの更新を実行するために、2 つのオプションが用意されます:
テンプレートのすべてのインスタンスの更新
1 番目のオプションは、作成されたすべてのインスタンスの更新です。この処理を取り消すことはできません。これは、各インスタンスを対象にして、それを更新し、変更を保存するバッチ処理です。このため、このアクションを実行する前にナレッジベースのバックアップを行うことをお勧めします。
トランザクションに関連したインスタンスにこのアクションを実行する場合、テンプレートから生成されたインスタンスのノード上で右クリックして、オプション [インスタンスの更新] を選択する必要があります。ただし、このアクションを一部の Web パネルのインスタンスに実行する場合は、インスタンスを更新する必要がある Web パネルテンプレート上で右クリックしてオプション [インスタンスの更新] を選択する必要があります。
特定の 1 つのインスタンスの更新
2 番目のオプションは、特定の 1 つのインスタンスの更新です。このプロセスではオブジェクトが保存されないため、インスタンス上でアクションによって実行された変更を表示することができ、この変更を取り消したり保存したりすることができます。
このアクションを実行するには、更新する必要があるトランザクションのインスタンスを開き、メインノード上で右クリックして、[インスタンスの更新] オプションを選択する必要があります。または、インスタンスを更新する必要がある Web パネルを開き、メインノード上で右クリックして、[インスタンスの更新] オプションを選択します。
どちらの場合でも、ユーザーがインスタンスに実行したカスタマイズは、このアクションの実行時に上書きされません。ここでのカスタマイズとは、新しいノードの挿入、既存ノードのプロパティの変更、特定ノードの場所の移動、ノードの削除などのことです。
Person インスタンスの例を取り上げてみましょう。
まず、次のインスタンステンプレートの構造およびノードがあります:

ここで、ノードおよびそれらの順番をインスタンステンプレートから取得する Person のインスタンスを作成しますが、その外観は次の図のようになります:



インスタンステンプレートからの項目属性ノードが Person トランザクションからの項目属性と置き換えられ、順番とフィルタにも同様の置換が発生することが分かります。一方、項目属性の状況などのインスタンスに依存していないため、[Standard Actions] または [Text Block] などのノードは同様に転記されます。
ここで、Person インスタンスに次の変更を行います:

オブジェクトを保存し、インスタンステンプレートに次の変更を行います:

ここで、次に示すように、Person インスタンス上で [インスタンスの更新] の操作を実行します:

結果は次のとおりです:
最初に表示されるのは確認パネルです。オブジェクト Selection の [StandardAction (Export)] が WorkWithPlus のインスタンステンプレートから削除されたことが表示されます。このノードを Person インスタンスから削除するかどうか、またはこれを維持するかどうかを判断する必要があります。
[キャンセル] を押すとプロセスがキャンセルされ、1 つのインスタンスのみにアクションを実行した場合はインスタンスが更新されませんが (Person トランザクションノード上で右クリック > [インスタンスの更新] を実行した場合と同様です)、(インスタンステンプレート上で右クリック > [インスタンスの更新] を実行して) 作成されたすべてのインスタンスにインスタンスの更新を実行した場合はプロセスがキャンセルされますが、更新されて保存されたインスタンスは取り消されません。
また、[すべてのインスタンスに同じオプションを選択] ボタンにチェックマークを付けて、更新しているすべてのインスタンスに選択した同じオプションを設定するオプションも用意されます。これは、WWP Configuration からインスタンスの更新を実行する際にのみ適用されますが、この場合のように 1 つのインスタンスのみを更新する際には適用されません。

この Standard Action を削除するために [はい] を押すと、処理が続行されます。この確認は、インスタンステンプレート内で削除された各オブジェクトに対して表示されます。この例では、インスタンステンプレート内で 1 つのノードのみを削除するため、この確認は 1 回だけ表示されます。
次のメッセージが表示されます:

注: [ログを表示] ボタンは、[WWP Configuration] ノード内の [Transaction Templates] ノードの [Generate Log] プロパティが [True] の場合のみ表示されます。
インスタンスはすでにインスタンステンプレートから更新されています。アクションに関する情報 (どのプロパティノードが更新されていないのか、どのノードにその子が順不同で並べられているのか、このインスタンスからはどのノードが特有なのか、このインスタンス内では特にどのノードが削除されたのかなど) を表示するために、[ログの表示] オプションをクリックしたり、単に [OK] をクリックしてプロセスを完了したりできます。
Person インスタンスにおいて、更新の前に実行した変更は次のとおりです:
- ([Transaction] ノード内の) [Error Viewer] の上にある項目属性が含まれたテーブルの移動 - ([Transaction] ノード内の) [Standard Action (Delete)] ノードの削除 - 「TitleText」と名付けられた [Text Block] ノードの [Caption] プロパティの変更 - newVariable と名付けられた新しい変数ノードを [TitleText] テキストブロックの直後に追加
この変更は、Person のインスタンスを示す上の図に表示されています。
ログを分析する場合、4 つのセクションに分割されます:
- [Properties not updated]: 既定値が含まれていなかったために更新されなかった一部のノードからの プロパティを指定します。この例では、これは「TitleText」と名付けられた [Text Block] ノードからの [Caption] プロパティの場合です。
- [Nodes with children disordered]: どのノードにその子が順不同で並べられるのかを指定します。この例では、これは Transaction オブジェクトのテーブル [TrnContent] の場合です。 [Error Viewer] の上に項目属性が含まれたテーブルを移動し、これらのノードは [TrnContent] テーブル内にあります。
- [Deleted Nodes from this instance]: 特にこのインスタンスからどのノードが削除されたのかを指定します。 この例では、これは Transaction オブジェクトの [Standard Action (Delete)] の場合です。
- [Particular Nodes of this instance]: 特にこのインスタンスに追加されたノードを指定します。 この例では、これは Selection オブジェクトの「NewVariable」と名付けられた変数ノード (TableVariable) の場合です。

最後に、Person インスタンスでの結果を示します:

Copyright ©
2007-2015 DVelop Software Solutions - www.workwithplus.com
|